// 确保 jQuery 已经加载
if (typeof jQuery === 'undefined') {
    console.error('jQuery is not loaded. Please ensure jQuery is included before this script.');
} else {
    // 使用 jQuery.noConflict() 来避免与其他库冲突
    var $ = jQuery.noConflict(true);

    // 确保 $ 在全局作用域中可用
    window.$ = $;

    // 全局变量
    window.app = window.contextPath = "";
    // 改成从后端获取
    // window.app = window.contextPath = xxx;
    $.get(app + '/common/globalConfig', function(res) {
        if (res.code === 200) {
            window.globalConfig = res.data;
        } else {
            console.error(res);
        }
    });

    // 你可以在这里定义一些全局的 jQuery 插件或工具函数
    $(document).ready(function() {
        console.log('main.js 加载完成，$ 可用');
    });
}

// 计数器
var counter = 0;
// 监听token是否过期事件（会拦截所有使用 XMLHttpRequest 发起的请求，不会捕捉到通过 Fetch API 发起的请求）
(function () {
    const originalOpen = XMLHttpRequest.prototype.open;
    const originalSend = XMLHttpRequest.prototype.send;

    function openWrapper(method, url, async, user, password) {
        this._url = url;
        this._method = method;
        return originalOpen.apply(this, arguments);
    }

    function sendWrapper(data) {
        this.addEventListener('load', function () {
            var responseCode = 200;
            if (this.responseText) {
                var response = JSON.parse(this.responseText);
                responseCode = response.code;
            }
            if (this.status === 401 || responseCode === 401) {
                counter++;
                if (counter === 1) { // 只弹窗一次
                    layer.confirm('登录状态已过期，请重新登录', {
                        closeBtn: 0,
                        btn: ['确定']
                    }, function () {
                        location.replace('./login');
                    });
                }
            }
        });
        return originalSend.apply(this, arguments);
    }

    XMLHttpRequest.prototype.open = openWrapper;
    XMLHttpRequest.prototype.send = sendWrapper;
})();


// 你可以在这里定义一些全局的 jQuery 插件或工具函数
$(document).ready(function() {
    console.log('main.js 加载完成，$ 可用');
});